#include "widget.h"
#include "ui_widget.h"

#include <QMediaPlayer>
#include <QSlider>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 对象实例化
    mediaPlayer = new QMediaPlayer(this);
    videoWidget = new QVideoWidget(this);

    // 设置播放画面的画面
    videoWidget->setMinimumSize(600,600);

    // 实例化窗口布局 --- 垂直布局
    this->vbox = new QVBoxLayout(this);
    this->setLayout(this->vbox);

    // 实例化选择视频按钮
    chooseBtn = new QPushButton("选择视频", this);

    // 实例化播放按钮
    playBtn = new QPushButton("播放视频",this);

    // 设置图标代替文件
    playBtn->setIcon(this->style()->standardIcon(QStyle::SP_MediaPlay));

    // 实例化一个水平布局， 将以上控件放进水平布局中
    QHBoxLayout *hbox = new QHBoxLayout(this);

    // 添加控件
    hbox->addWidget(chooseBtn);
    hbox->addWidget(playBtn);

    // 将播放窗口和水平布局都添加到垂直布局中
    vbox->addWidget(videoWidget);

    // 布局中添加布局
    vbox->addLayout(hbox);

    // 将选择视频对应的按钮和槽函数进行关联
    connect(chooseBtn, &QPushButton::clicked, this, &Widget::chooseVideo);
    connect(playBtn, &QPushButton::clicked, this, &Widget::playVideo);

}

Widget::~Widget()
{
    delete ui;
}

void Widget::chooseVideo()
{
    // 选择视频，返回一个播放视频的名字
    name = QFileDialog::getSaveFileName(this,"选择视频",
   ".","WNV(*.wmv)");

    // 设置媒体声音
    mediaPlayer->setMedia(QUrl(name));
}

void Widget::playVideo()
{
    // 输出视频画面
    mediaPlayer->setVideoOutput(videoWidget);

    // 播放
    mediaPlayer->play();
}

